/*
 * Copyright (C), 2002-2016, 苏宁易购电子商务有限公司
 * FileName: TaskInfo.java
 * Author:   13075787
 * Date:     2016年7月7日 下午3:12:50
 * Description: //模块目的、功能描述      
 * History: //修改记录
 * <author>      <time>      <version>    <desc>
 * 修改人姓名             修改时间            版本号                  描述
 */
package com.suning.sawp.intf.model;

import java.util.List;

import org.apache.commons.lang3.StringUtils;

/**
 * 样机管理<br>
 * 任务
 *
 * @author 13075787
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class TaskInfoVo {

    /**
     * 任务id
     */
    private String taskId;
    /**
     * 任务开始时间yyyy.MM.dd
     */
    private String startTime;
    /**
     * 任务结束时间yyyy.MM.dd
     */
    private String endTime;
    /**
     * 任务操作类型:1分配品类2分配品牌3任务执行
     */
    private String oprType;
    /**
     * 任务类型:1盘点任务2簇商品维护
     */
    private String taskType;
    /**
     * 样机库位编码
     */
    private String storageCode;
    /**
     * 样机库名称
     */
    private String storageStr;

    /**
     * 品类 品牌
     */
    private List<TaskCateVo> cates;

    /**
     * @return the taskId
     */
    public String getTaskId() {
        return taskId;
    }

    /**
     * @param taskId the taskId to set
     */
    public void setTaskId(String taskId) {
        this.taskId = taskId;
    }

    /**
     * @return the startTime
     */
    public String getStartTime() {
        return startTime;
    }

    /**
     * @param startTime the startTime to set
     */
    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    /**
     * @return the endTime
     */
    public String getEndTime() {
        return endTime;
    }

    /**
     * @param endTime the endTime to set
     */
    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    /**
     * @return the oprType
     */
    public String getOprType() {
        return oprType;
    }

    /**
     * @param oprType the oprType to set
     */
    public void setOprType(String oprType) {
        this.oprType = oprType;
    }

    /**
     * @return the taskType
     */
    public String getTaskType() {
        return taskType;
    }

    /**
     * @param taskType the taskType to set
     */
    public void setTaskType(String taskType) {
        this.taskType = taskType;
    }

    /**
     * @return the cates
     */
    public List<TaskCateVo> getCates() {
        return cates;
    }

    /**
     * @param cates the cates to set
     */
    public void setCates(List<TaskCateVo> cates) {
        this.cates = cates;
    }

    /*
     * (non-Javadoc)
     * @see java.lang.Object#hashCode()
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((taskId == null) ? 0 : taskId.hashCode());
        return result;
    }

    /*
     * (non-Javadoc)
     * @see java.lang.Object#equals(java.lang.Object)
     */
    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        TaskInfoVo other = (TaskInfoVo) obj;
        if (taskId == null) {
            if (other.taskId != null)
                return false;
        } else if (!taskId.equals(other.taskId))
            return false;
        return true;
    }

    /**
     * @return the storageCode
     */
    public String getStorageCode() {
        return storageCode;
    }

    /**
     * @param storageCode the storageCode to set
     */
    public void setStorageCode(String storageCode) {
        if (StringUtils.isBlank(this.storageStr) && StringUtils.isNotBlank(storageCode)) {
            this.setStorageStr(ModelConstant.getModelLibValue(storageCode));
        }
        this.storageCode = storageCode;
    }

    /**
     * @return the storageStr
     */
    public String getStorageStr() {
        return storageStr;
    }

    /**
     * @param storageStr the storageStr to set
     */
    public void setStorageStr(String storageStr) {
        this.storageStr = storageStr;
    }
}
